<?php

/**
 * 分数结算 房间重置方法
 */


//用户赢了加场数
function updateuserwin($uid)
{   
    $mysql = new mysqlDb();
    $mysql->query("update user_games set user_ddzwin = user_ddzwin + 1 where uid = $uid");
}

//用户输了加场数
function updateuserlose($uid)
{
    $mysql = new mysqlDb();
    $mysql->query("update user_games set user_ddzlose = user_ddzlose + 1 where uid = $uid");
}

//获取用户胜率
function getuserwinlose($uid)
{
    $mysql = new mysqlDb();
    $sql = "select * from user_games where uid = $uid";
    $res = $mysql->getRow($sql);
    if ($res['user_ddzwin'] + $res['user_ddzlose'] != 0) {
        $res = $res['user_ddzwin'] / ($res['user_ddzwin'] + $res['user_ddzlose']);
        $res = round($res, 2) * 100;
    } else {
        $res = 0;
    }
    return $res;
}


/**
 * 房间重置方法
 * @param  [string] $roomid [传入房间ID]
 */
function resetRoom($roomid)
{
    $GLOBALS['hall'][$roomid]['pokers'] = [];
    $GLOBALS['hall'][$roomid]['status'] = 'off';
    $GLOBALS['hall'][$roomid]['whosturn'] = '';
    $GLOBALS['hall'][$roomid]['game_double'] = 1;
    $GLOBALS['hall'][$roomid]['whospoker'] = '';
    $GLOBALS['hall'][$roomid]['round_type'] = 'off';

    $GLOBALS['hall'][$roomid]['user_a_pokers'] = [];
    $GLOBALS['hall'][$roomid]['user_b_pokers'] = [];
    $GLOBALS['hall'][$roomid]['user_c_pokers'] = [];

    $GLOBALS['hall'][$roomid]['user_a_status'] = '空闲';
    $GLOBALS['hall'][$roomid]['user_b_status'] = '空闲';
    $GLOBALS['hall'][$roomid]['user_c_status'] = '空闲';

    $GLOBALS['hall'][$roomid]['user_a_identity'] = 'off';
    $GLOBALS['hall'][$roomid]['user_b_identity'] = 'off';
    $GLOBALS['hall'][$roomid]['user_c_identity'] = 'off';
}


/**
 * [游戏结束 结算方法]
 * @param  [string] $roomid     [房间的ID]
 * @param  [string] $identity   [传入出完牌玩家的身份 ]
 * @param  [string] $type       [可选参数 是否有人逃跑 ]
 * @return [array]              [返回输赢数组]
 */
function gameOver($roomid, $identity, $type = [])
{   
    $win = [];  $lose = [];

    //如果是有人逃跑 直接返回结果
    if (isset($type['ranout'])) {
        resetRoom($roomid);
        return ['win'=>$win,'lose'=>[$GLOBALS['hall'][$roomid]['user_a_nick']], 'ranout'=>$type['ranout']];
    }

    if ($identity == '地主') {

        if ($GLOBALS['hall'][$roomid]['user_a_identity'] == '地主') {
            $win[] = $GLOBALS['hall'][$roomid]['user_a_nick'];
            updateuserwin($GLOBALS['hall'][$roomid]['user_a_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_b_identity'] == '地主') {
            $win[] = $GLOBALS['hall'][$roomid]['user_b_nick'];
            updateuserwin($GLOBALS['hall'][$roomid]['user_b_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_c_identity'] == '地主') {
            $win[] = $GLOBALS['hall'][$roomid]['user_c_nick'];
            updateuserwin($GLOBALS['hall'][$roomid]['user_c_id']);
        }

        if ($GLOBALS['hall'][$roomid]['user_a_identity'] == '农民') {
            $lose[] = [$GLOBALS['hall'][$roomid]['user_a_nick'], $GLOBALS['hall'][$roomid]['user_a_pokers']];
            updateuserlose($GLOBALS['hall'][$roomid]['user_a_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_b_identity'] == '农民') {
            $lose[] = [$GLOBALS['hall'][$roomid]['user_b_nick'], $GLOBALS['hall'][$roomid]['user_b_pokers']];
            updateuserlose($GLOBALS['hall'][$roomid]['user_b_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_c_identity'] == '农民') {
            $lose[] = [$GLOBALS['hall'][$roomid]['user_c_nick'], $GLOBALS['hall'][$roomid]['user_c_pokers']];
            updateuserlose($GLOBALS['hall'][$roomid]['user_c_id']);
        }

    } else if ($identity == '农民') {
        if ($GLOBALS['hall'][$roomid]['user_a_identity'] == '地主') {
            $lose[] = [$GLOBALS['hall'][$roomid]['user_a_nick'], $GLOBALS['hall'][$roomid]['user_a_pokers']];
            updateuserlose($GLOBALS['hall'][$roomid]['user_a_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_b_identity'] == '地主') {
            $lose[] = [$GLOBALS['hall'][$roomid]['user_b_nick'], $GLOBALS['hall'][$roomid]['user_b_pokers']];
            updateuserlose($GLOBALS['hall'][$roomid]['user_b_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_c_identity'] == '地主') {
            $lose[] = [$GLOBALS['hall'][$roomid]['user_c_nick'], $GLOBALS['hall'][$roomid]['user_c_pokers']];
            updateuserlose($GLOBALS['hall'][$roomid]['user_c_id']);
        }

        if ($GLOBALS['hall'][$roomid]['user_a_identity'] == '农民') {
            $win[] = $GLOBALS['hall'][$roomid]['user_a_nick'];
            updateuserwin($GLOBALS['hall'][$roomid]['user_a_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_b_identity'] == '农民') {
            $win[] = $GLOBALS['hall'][$roomid]['user_b_nick'];
            updateuserwin($GLOBALS['hall'][$roomid]['user_b_id']);
        }
        if ($GLOBALS['hall'][$roomid]['user_c_identity'] == '农民') {
            $win[] = $GLOBALS['hall'][$roomid]['user_c_nick'];
            updateuserwin($GLOBALS['hall'][$roomid]['user_c_id']);
        }
    }

    $pokers = [
        'user_a_pokers' => $GLOBALS['hall'][$roomid]['user_a_pokers'],
        'user_b_pokers' => $GLOBALS['hall'][$roomid]['user_b_pokers'],
        'user_c_pokers' => $GLOBALS['hall'][$roomid]['user_c_pokers'],
    ];

    //重置房间所有属性
    resetRoom($roomid);
    //返回胜负数据给玩家
    return ['win'=>$win,'lose'=>$lose,'pokers'=>$pokers];
}
